Configuración de Recursos en PCS
Introducción a los Recursos
En el contexto de los elementos controlados por los clústeres, se les denomina recursos. Estos resources pueden variar según su tipo, abarcando desde aplicaciones hasta volúmenes de almacenamiento. Los recursos pueden ser balanceados entre nodos, generalmente organizados en grupos. Algunos ejemplos de recursos incluyen:
- Recursos de aplicación
- Recursos de almacenamiento
- Recursos de red
- Recursos de clúster
Los recursos se identifican de la siguiente manera. Por ejemplo, en el documento de instalación se crearon dos recursos:
ocf:heartbeat:IPaddr2
ocf:heartbeat:apache
Cada recurso se compone de los siguientes elementos: Resource Standard : Resource Provider : Resource Agents.
Resource Standards
root@node1:~# pcs resource standards
lsb
ocf
service
systemd
Cada uno de estos Standars define cómo se deben implementar y gestionar los recursos en el clúster.
- LSB (Linux Standard Base)
- OCF (Open Cluster Framework)
- Service
- Systemd
De la documentación oficial de OCF
What is a resource agent? A resource agent is an executable that manages a cluster resource. No formal definition of a cluster resource exists, other than "anything a cluster manages is a resource." Cluster resources can be as diverse as IP addresses, file systems, database services, and entire virtual machines — to name just a few examples.
Resource Provider
root@node1:~# pcs resource providers
heartbeat
pacemaker
Estos providers definen la forma en que se implementan y gestionan los recursos, así como las operaciones que se pueden realizar sobre ellos. Cada uno de estos providers ofrece diferentes implementaciones de resource agents.
Resource Agents
root@node1:~# pcs resource agents ocf:heartbeat
apache
conntrackd
corosync-qnetd
-----
iface-vlan
IPaddr2
IPsrcaddr
-----
root@node1:~# pcs resource agents ocf:pacemaker
attribute
ClusterMon
controld
Dummy
HealthCPU
Este comando proporciona una lista de los tipos de agentes que se pueden definir e implementar. La lista es amplia y permite gestionar diversos componentes, incluyendo almacenamiento, redes, aplicaciones, entre otros.
Para acceder a la información de cada uno de estos agentes, utiliza la siguiente nomenclatura: man <Resource Standard>_<Resource Provider>_<Resource Agents>
. Por ejemplo: man ocf_heartbeat_IPaddr2
. Cabe destacar que estos agentes son, en esencia, scripts de shell. Para consultar el código fuente, puedes ver su repositorio en GitHub.
Configuración de recursos
Crear un recurso
Un ejemplo de creación de un recurso lo puedes encontrar en el documento anterior de instalación Crear Recurso de IP Virtual (VIP)
root@node1:~# pcs resource create VirtualIP IPaddr2 ip=10.10.10.100 cidr_netmask=24 --group apachegroup
root@node1:~# pcs status
---
Full List of Resources:
* Resource Group: apachegroup:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1
Ver estado de los recursos
root@node1:~# pcs resource status
* Resource Group: apachegroup:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1
* Website (ocf:heartbeat:apache): Started node1
Ver configuración de recursos
Para ver la configuración de recursos ejecutar pcs resource config <Resource>
root@node1:~# pcs resource config Website
Resource: Website (class=ocf provider=heartbeat type=apache)
Attributes: Website-instance_attributes
configfile=/etc/httpd/conf/httpd.conf
statusurl=http://127.0.0.1/server-status
Operations:
monitor: Website-monitor-interval-10s
interval=10s timeout=20s
start: Website-start-interval-0s
interval=0s timeout=40s
stop: Website-stop-interval-0s
interval=0s timeout=60s
Actualizar configuración de un recurso
Para actualizar la configuración de un recurso, es necesario especificar qué operación se desea modificar. En este caso existen disitinos timeouts.
Se recomienda usar la flag --agent-validation
para evitar propagar errores en la configuración
root@node1:~# pcs resource update Website op monitor timeout=30s --agent-validation
Migrar recurso de nodo
root@node1:~# pcs resource move apachegroup node1
Location constraint to move resource 'apachegroup' has been created
Waiting for the cluster to apply configuration changes...
Clonar un recurso
Esto es especialmente útil si deseamos que un recurso se ejecute en varios nodos de forma simultánea. Podemos seleccionar el número de nodos en los que se puede clonar utilizando el flag clone_count=<n>
. Este recurso aparecerá identificado como un clone set.
root@node1:~# pcs resource clone Website
root@node1:~# pcs status
Cluster name: megatroncluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: node2 (version 3.0.0-5.el10-7e73fd0) - partition with quorum
* Last updated: Fri Aug 15 22:43:00 2025 on node1
* Last change: Fri Aug 15 22:42:56 2025 by root via root on node1
* 2 nodes configured
* 3 resource instances configured
Node List:
* Online: [ node1 node2 ]
Full List of Resources:
* Resource Group: apachegroup:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1
* Clone Set: Website-clone [Website]:
* Started: [ node1 node2 ]
Daemon Status:
corosync: active/disabled
pacemaker: active/enabled
pcsd: active/enabled
Mantenimiento del cluster
Se activa cuando es necesario evitar que los recursos se balanceen de forma automática debido a tareas de mantenimiento. Durante este período, los recursos se mostrarán como en mantenimiento, pero continuarán funcionando normalmente.
root@node1:~# pcs property set maintenance-mode=true
root@node1:~# pcs status
Cluster name: megatroncluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: node2 (version 3.0.0-5.el10-7e73fd0) - partition with quorum
* Last updated: Fri Aug 15 22:53:17 2025 on node1
* Last change: Fri Aug 15 22:53:13 2025 by root via root on node1
* 2 nodes configured
* 3 resource instances configured
*** Resource management is DISABLED ***
The cluster will not attempt to start, stop or recover services
Node List:
* Online: [ node1 node2 ]
Full List of Resources:
* Resource Group: apachegroup (maintenance):
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1 (maintenance)
* Clone Set: Website-clone [Website] (maintenance):
* Website (ocf:heartbeat:apache): Started node2 (maintenance)
* Website (ocf:heartbeat:apache): Started node1 (maintenance)
Tabla resumen
Categoría | Comando | Descripción |
---|---|---|
Resource Standards | pcs resource standards | Muestra los estándares de recursos disponibles (lsb, ocf, service, systemd). |
Resource Providers | pcs resource providers | Muestra los proveedores de recursos disponibles (heartbeat, pacemaker). |
Resource Agents | pcs resource agents ocf:heartbeat | Lista los agentes de recursos disponibles bajo el proveedor heartbeat. |
Listar resource agents | pcs resource agents ocf:pacemaker | Lista los agentes de recursos disponibles bajo el proveedor pacemaker. |
Crear un recurso | pcs resource create VirtualIP IPaddr2 ip=10.10.10.100 cidr_netmask=24 --group apachegroup | Crea un recurso de IP virtual en el grupo apachegroup. |
Ver estado de los recursos | pcs resource status | Muestra el estado de los recursos en el clúster. |
Ver configuración de recurso | pcs resource config Website | Muestra la configuración de un recurso específico. |
Actualizar configuración | pcs resource update Website op monitor timeout=30s --agent-validation | Actualiza la configuración de un recurso, especificando un nuevo timeout. |
Migrar recurso de nodo | pcs resource move apachegroup node1 | Mueve el recurso apachegroup al nodo especificado. |
Clonar un recurso | pcs resource clone Website | Clona el recurso Website para que se ejecute en varios nodos. |
Activar modo mantenimiento | pcs property set maintenance-mode=true | Activa el modo de mantenimiento para evitar el balanceo automático de recursos. |
Ver estado en mantenimiento | pcs status | Muestra el estado del clúster, indicando que los recursos están en mantenimiento. |